#include "GeneradorDeTriangulosRectangulosConAlturaDos.h"

GeneradorDeTriangulosRectangulosConAlturaDos::GeneradorDeTriangulosRectangulosConAlturaDos
(
	double representacionBaseInicial,
	double incrementoPorIteracion,
	unsigned int cantidadIteraciones,
	unsigned int precision
)
: altura(2.0, precision)
{
	this->representacionBaseInicial = representacionBaseInicial;
	this->incrementoPorIteracion = incrementoPorIteracion;
	this->cantidadIteraciones = cantidadIteraciones;
	this->precision = precision;
	this->limiteRepresentacionBase = representacionBaseInicial + ((double)cantidadIteraciones) * incrementoPorIteracion;
}

const double GeneradorDeTriangulosRectangulosConAlturaDos::obtenerRepresentacionBaseActual() const
{
	return this->representacionBaseActual;
}

const unsigned int GeneradorDeTriangulosRectangulosConAlturaDos::obtenerPrecision() const
{
	return this->precision;
}

void GeneradorDeTriangulosRectangulosConAlturaDos::iniciar()
{
	this->representacionBaseActual = this->representacionBaseInicial;
}

void GeneradorDeTriangulosRectangulosConAlturaDos::siguiente()
{
	this->representacionBaseActual+= this->incrementoPorIteracion;
}

bool GeneradorDeTriangulosRectangulosConAlturaDos::hayMasTriangulos() const
{
	return this->representacionBaseActual < this->limiteRepresentacionBase;
}

TrianguloRectanguloConAlturaDos GeneradorDeTriangulosRectangulosConAlturaDos::Crear(const Float &base) const
{
	return TrianguloRectanguloConAlturaDos(base, this->precision);
}

